The present invention concerns a system for recording programs that have been encoded according to the MPEG standard defined by the moving-pictures expert group and in particular to a system for recording selected MPEG-2 programs from a multi-program transport stream.
The MPEG-2 system standard, ISO/IEC HTC1/CS29/WG11 N0721, rev 10 Jun. 1994, which is hereby incorporated by reference for its teachings on MPEG-2 encoding, defines a method of formatting and transmitting multiple digitally encoded programs, each including a video portion, an audio portion and a data portion. According to this standard, data representing multiple programs may be transmitted as a single time-division multiplexed transport stream.
The basic unit of the transport stream is a transport packet. Each transport packet has a fixed length (i.e. 188 bytes) and includes a header portion and a data portion. The data portions of several transport packets, when combined, form a packetized elementary stream (PES) packet. Each PES packet may represent part of the video information, the audio information or the data which together constitute the program. The transport packets representing PES packets for different programs may be interleaved. Thus, the multiple programs may be sent in a time-division multiplexed format. In addition, the transport stream includes some system packets which do not belong to any program but which are used to associate the transport packets with their respective programs.
Transport streams containing multiple programs are already in use, for example, by the direct broadcast satellite (DBS) systems such as DirecTV Inc., and the United States Satellite Broadcasting system (USSB). In these systems, several programs, each representing, for example, programming that would be sent on a conventional terrestrial broadcast channel, are combined in a single transport stream and transmitted over a transponder channel. The satellite service consists of several transponder channels. At the receiver, a particular transport stream is selected and the transport packets corresponding to a particular program are demultiplexed. These packets are then provided to a decoder to reproduce the program or are decoded to recover an analog video signal which may be recorded on a conventional VCR.
According to the MPEG standard, data is produced at a highly variable data rate but is transmitted to a remote location at a fixed data rate, where it is decoded at a variable rate. In order to convert from variable rate to fixed rate and back to variable rate, both the encoder and decoder include buffer memories which hold the data temporarily.
The rate at which data is provided in each of the programs may be controlled in at least two ways. According to one method, to ensure that the data for any given program will not exceed the capacity of the decoder, the encoder includes circuitry which monitors the effective data rate of each transmitted program. This circuitry implements a model of the decoding process which is called the Transport Stream Target System Decoder (T-STD). This model, which is defined in the above-referenced MPEG-2 system standard at section 2.4.2, defines how quickly the data in the transport stream is processed. If the encoder supplies data during a predetermined interval, at a rate higher than that indicated by the T-STD model, the buffers for holding the data in a receiver may overflow and portions of the program data stream may be lost. If the encoded data is supplied at a rate much lower than the T-STD model, there may not be enough data to keep the decoder in operation, causing gaps in the reproduced program.
If the data rate of the program does not fall within the parameters of the T-STD model for that program, the encoder is controlled to provide data for the program at a lower rate (if the previous rate was too high for the model) or at a higher rate (if the previous rate was too low for the model). In an encoded MPEG-2 transport stream the data rate may be adjusted by providing data from the transport buffer more or less frequently.
In addition to this program-by-program rate controller, statistical rate controllers may be used to further optimize the utilization of the transport channel. An example of this is described in an article by A. Guha et al. entitled "Multichannel Joint Rate Control of VBR MPEG Encoded Video for DBS Applications" IEEE Transactions on Consumer Electronics, Vol. 40, No. 3, August, 1994. This system monitors the amount of data that is being provided by each of the programs and allows a program that needs to send a relatively high volume of data to "borrow" transmission bandwidth from programs which need to send only relatively small amounts of data. This system may be used in conjunction with multiple T-STD models, providing a further control on when data for a particular program is allowed in the program transport stream.